home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 87xx / 8702a.d64 / gdm v1.0 (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  7KB  |  246 lines

  1. 1 A=A+1:IF A=1 THEN LOAD"GDM.OBJ",8,1
  2. 2 B=B+1:IF B=1 THEN LOAD"GDM.CODES",8,1
  3. 3 :
  4. 14 REM ------------------------------
  5. 15 REM - GDM GEOS DISKETTEN MONITOR -
  6. 45 REM -    (C) MARKT & TECHNIK     -
  7. 50 REM ------------------------------
  8. 51 :
  9. 55 :
  10. 60 HE$="-0123456789[193][194][195][196][197][198]"
  11. 65 H2$="-0123456789ABCDEF"
  12. 75 :
  13. 85 CLOSE 15:OPEN 15,8,15,"I":CLOSE 2:OPEN 2,8,2,"#"
  14. 90 POKE 53280,0:POKE 53281,0:POKE 53272,23:POKE 657,128:POKE 646,1
  15. 91 POKE 53248,32:POKE 53249,219:POKE 53288,1:POKE 53269,1:POKE 52264,0
  16. 92 POKE 2040,13
  17. 95 :
  18. 100 REM    --- HAUPTMENUE ---
  19. 105 PRINT"[147][199][196][205][160][199]EOS [196]ISKMONITOR [214]2                ";:POKE 53269,1
  20. 106 PRINT"   BY [212]HORSTEN [208]ETROWSKI   (C) 64'ER"
  21. 107 PRINT"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]";
  22. 115 PRINT"  F1[146] [204]ESEN  F2[146] [206]AECHSTER  F3[146] SCHREIBEN"
  23. 120 PRINT:PRINT"  F4[146] [194]YTE EDIT  F5[146] [196]IRECTORY  F6[146] [210]ESET"
  24. 125 PRINT:PRINT" F7[146] [197]NDE F8[146] [194]LOCK EDIT _[146] [196]UMP H[146] [200][197][216]-[197]DIT";
  25. 126 PRINT"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]";
  26. 130 PRINT"     [146][211]PUR [    ]  [146] [211]EKTOR [    ]        [146]";
  27. 131 PRINT"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]";
  28. 135 PRINT"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][145][157]                        [146]";
  29. 140 PRINT "[194]YTE#   :[196][197][218] #    [200][197][216] $   [194][201][206] %        "
  30. 141 PRINT"[176][192][192][192][174]                          76543210"
  31. 142 PRINT"[221]   [221] [211]PRITE"
  32. 143 PRINT"[221]   [221]"
  33. 144 PRINT"[221]   [221]"
  34. 145 PRINT"[173][192][192][192][189]";
  35. 146 GOSUB 575
  36. 150 :
  37. 155 :
  38. 160 REM   --- AUSWAHL MENUE ---
  39. 165 MD$="> [215][193][201][212][201][206][199][160]<":GOSUB 2000
  40. 166 GET KEY$:IF KEY$="" THEN 165
  41. 170 IF KEY$="[133]" THEN GOSUB 590
  42. 175 IF KEY$="[135]" THEN PRINT"[147]":GOSUB 460:GOTO 105
  43. 176 IF KEY$="H" THEN 1000
  44. 180 IF KEY$="[140]" THEN GOSUB 575:GOTO 225
  45. 185 IF KEY$="[139]" THEN 85
  46. 190 IF KEY$="[134]" THEN GOSUB 650
  47. 195 IF KEY$="[136]" THEN CLOSE 2:CLOSE 15:END
  48. 200 IF KEY$="[137]" THEN T=PEEK(49664):S=PEEK(49665):KEY$="[133]":GOTO 170
  49. 205 IF KEY$="[138]" THEN GOSUB 630
  50. 210 IF KEY$="_" THEN GOSUB 340:GOTO 105
  51. 215 GOTO 165
  52. 220 :
  53. 225 REM     --- EDITIEREN ---
  54. 230 CR=1464+NR:RO=CR
  55. 235 X=29:Y=0:GOSUB 675:PRINT"> [197][196][201][212][201][206][199] <"
  56. 240 IF NR>255 OR NR<0 THEN NR=NO:CR=RO
  57. 245 GOSUB 605
  58. 250 POKE RO,PEEK(RO) AND 127
  59. 255 POKE CR,PEEK(CR) OR 128
  60. 260 RO=CR:NO=NR
  61. 265 GET MO$:IF MO$="" THEN 265
  62. 270 MO=ASC(MO$):PO=MO
  63. 275 IF MO=29 THEN NR=NR+1:CR=CR+1:GOTO 240
  64. 280 IF MO=17 THEN NR=NR+40:CR=CR+40:GOTO 240
  65. 285 IF MO=138 THEN GOSUB 630:GOTO 240
  66. 290 IF MO=145 THEN NR=NR-40:CR=CR-40:GOTO 240
  67. 295 IF MO=157 THEN NR=NR-1:CR=CR-1:GOTO 240
  68. 300 IF MO=13 THEN POKE RO,PEEK(RO) AND 127:GOTO 150
  69. 305 IF MO>=65 AND MO<=90 THEN PO=PO+32:GOTO 315
  70. 310 IF MO>=193 AND MO<=218 THEN PO=PO-128
  71. 315 Y=INT(NR/40):X=NR-Y*40:Y=Y+11:GOSUB 675:PRINT CHR$(MO);
  72. 320 POKE 49664+NR,PO
  73. 325 IF NR<255 THEN NR=NR+1:CR=CR+1
  74. 330 GOTO 240
  75. 335 :
  76. 340 REM      --- HARDCOPY ---
  77. 341 PRINT"[147]":X=0:Y=12:GOSUB 675:PRINT"[196]RUCKER-[196]UMP ...":POKE 53269,0
  78. 342 PRINT TAB(10)"([196])EZIMAL"
  79. 343 PRINT TAB(10)"([200])EXADEZIMAL"
  80. 344 PRINT TAB(10)"([211])[212][207][208][160]!"
  81. 345 GET MO$:IF MO$="" THEN 345
  82. 346 IF MO$="S" THEN RETURN
  83. 347 IF MO$="H" OR MO$="D" THEN 353
  84. 348 GOTO 345
  85. 353 OPEN 4,4,7:REM MPS-801 GGF.AENDERN
  86. 354 POKE768,61:PRINT#4,:CLOSE4:POKE 768,139
  87. 355 IF ST<>-128 THEN 359
  88. 356 X=5:Y=20:GOSUB675:PRINT"[196][210][213][195][203][197][210][160][206][201][195][200][212][160][193][206][199][197][211][195][200][193][204][212][197][212][160]!-[212]ASTE "
  89. 357 FORT=0 TO 255:POKE 53280,T:NEXT:GET A$:IF A$="" THEN 357
  90. 358 GOTO 353
  91. 359 OPEN 4,4,7:GOSUB 675:PRINT"                                      "
  92. 360 FOR OUT =0 TO 31
  93. 361 :PRINT#4,"[";
  94. 362 :IF MO$="D" THEN PRINT#4,RIGHT$(STR$(OUT*8+1000),3);"] :";
  95. 363 :IF MO$="H" THEN BY=OUT*8:GOSUB 35000:PRINT#4,HI$;"] ";
  96. 365 :FOR YB =0 TO 7
  97. 369 ::IF MO$="H" THEN BY=PEEK(49664+OUT*8+YB):GOSUB 35000:PRINT#4,HI$;
  98. 370 ::IF MO$="D" THEN PRINT#4,RIGHT$(STR$(PEEK(49664+OUT*8+YB)+1000),3);
  99. 371 :PRINT#4," ";
  100. 375 :NEXT YB
  101. 380 :SYS 49259,49664+OUT*8,8,PR$
  102. 385 :PRINT#4,PR$
  103. 390 NEXT OUT
  104. 395 PRINT#4:PRINT#4,"[199][196][205] [199]EOS [196]ISK [205]ONITOR VON [212].[208]ETROWSKI ([195]) 64'ER":PRINT#4
  105. 400 CLOSE 4:POKE 53269,1:RETURN
  106. 405 :
  107. 410 REM    --- DISK-STATUS ---
  108. 415 INPUT#15,EN,ER$,ET,ES:POKE 212,0
  109. 420 X=6:Y=24:GOSUB 675:PRINT"                                ";
  110. 425 X=6:Y=24:GOSUB 675:POKE 212,0
  111. 430 PRINT"[196]ISK :";ER$;""
  112. 435 RETURN
  113. 440 :
  114. 445 REM      --- STRICH ---
  115. 450 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]";:RETURN
  116. 455 :
  117. 460 REM    --- DIRECTORY ---
  118. 465 CLOSE 1:OPEN 1,8,0,"$0":POKE 53269,0
  119. 470 GET#1,A$,A$:D=0:POKE 198,0
  120. 475 D=D+1:IF D=2 THEN PRINT:GOSUB 445
  121. 480 PRINT:PRINT"     ";:IF (ST AND 64)=64 THEN GOTO 500
  122. 485 IF PEEK(198)=0 THEN 495
  123. 490 POKE 198,0:WAIT 198,1:POKE 198,0
  124. 495 SYS 49215:GOTO 475
  125. 500 PRINT"  --- [212]ASTE DRUECKEN ---":POKE 198,0:WAIT 198,1
  126. 505 POKE 53269,1:RETURN
  127. 510 :
  128. 515 REM --- SPUR/SEKTOR EINGABE ---
  129. 520 X=11:Y=9:GOSUB 675:IN=T:GOSUB 700:T=IN
  130. 535 X=27:Y=9:GOSUB 675:IN=S:GOSUB 700:S=IN
  131. 545 RETURN
  132. 550 :
  133. 555 REM     --- BLOCK LESEN ---
  134. 560 POKE 53269,0:PRINT#15,"U1: 2 0 "T;S
  135. 565 SYS 49152:NR=0:POKE 53269,1:RETURN
  136. 570 :
  137. 575 REM       --- ANZEIGEN ---
  138. 580 X=0:Y=11:GOSUB 675:SYS 49177:POKE 53280,0:RETURN
  139. 585 :
  140. 590 REM        --- LESEN ---
  141. 595 GOSUB 515:GOSUB 555:GOSUB 410:GOSUB 575:RETURN
  142. 600 :
  143. 605 REM    --- WERT AUSGEBEN ---
  144. 610 X=5:Y=19:GOSUB675:PRINTRIGHT$(STR$(NR+1000),3);
  145. 614 POKE 211,14:PRINTRIGHT$(STR$(PEEK(49664+NR)+1000),3);
  146. 615 POKE 211,23:PRINTMID$(HEX$,(((PEEK(49664+NR) AND 240)+16)/16)+1,1);
  147. 616 PRINTMID$(HEX$,(PEEK(49664+NR)AND 15)+2,1);
  148. 617 SYS 49446,NR:POKE 211,31:SYS 49407,PEEK(49664+NR)
  149. 620 RETURN
  150. 625 :
  151. 630 REM      --- BYTE EDIT ---
  152. 635 GOSUB 605:X=18:Y=22:GOSUB 675:PRINT"[206]EUER [215]ERT:";
  153. 636 OPEN 3,0,0:INPUT#3,BY$:CLOSE 3
  154. 637 MO$=LEFT$(BY$,1)
  155. 638 IF MO$<>"$" THEN 641
  156. 639 IN$=MID$(BY$,2):GOSUB41000
  157. 640 BY=IN:GOTO 649
  158. 641 IF MO$<>"%" THEN 645
  159. 642 BY=0:FOR BI=0 TO 7
  160. 643 IF MID$(BY$,9-BI,1)="1" THEN BY=BY+2^BI
  161. 644 NEXT BI:GOTO 649
  162. 645 IU=1:IF MO$="#" THEN IU=2
  163. 646 BY=VAL(MID$(BY$,IU,3))
  164. 649 POKE 49664+NR,BY:GOSUB 575:RETURN
  165. 650 REM      --- SCHREIBEN ---
  166. 655 GOSUB 515:PRINT#15,"B-P 2 0":SYS 49193
  167. 660 PRINT#15,"U2: 2 0 ";T;S
  168. 665 GOSUB 410:RETURN
  169. 670 :
  170. 675 REM    --- CURSOR SETZEN ---
  171. 680 POKE 211,X:POKE 214,Y:SYS 58732:RETURN
  172. 690 :
  173. 700 REM --- EINGABE (AUCH HEX)
  174. 701 IN$=RIGHT$(STR$(IN+1000),2):GOSUB 800
  175. 715 IF LEFT$(IN$,1)="$" THEN IN$=RIGHT$(IN$,2):GOSUB 41000:RETURN
  176. 716 IN=VAL(IN$)
  177. 720 RETURN
  178. 800 PRINT IN$;
  179. 801 PRINT" [146][157]";
  180. 805 GET A$:IF A$="" THEN 805
  181. 810 LL=LEN(IN$):IFA$=CHR$(20) ANDLL>0 THENIN$=LEFT$(IN$,LL-1):PRINT"[157]  [157][157]";
  182. 811 IF A$=CHR$(20) THEN 801
  183. 812 IF A$=CHR$(13) THEN PRINT" ";:RETURN
  184. 815 IF(A$>="0"ANDA$<="9")OR(A$>="A"ANDA$<="F")OR(A$>="[193]"ANDA$<="[198]")THEN 825
  185. 816 IF A$="$" THEN 825
  186. 820 GOTO 805
  187. 825 IF LEN(IN$)<3 THEN IN$=IN$+A$:PRINT A$;:GOTO 801
  188. 830 GOTO 805
  189. 1000 REM --- HEX EDIT ---
  190. 1005 EB=0
  191. 1010 X=0:Y=12:GOSUB 675
  192. 1011 PRINT" [206]R   +0 +1 +2 +3 +4 +5 +6 +7 [193][211][195][201][201]     ";
  193. 1012 GOSUB 445:PRINT"                                        ";:GOSUB 445
  194. 1013 PRINT"   + [214]ORW. - [218]UR. [210][197][212][213][210][206][160][197]INGEBEN Q [197]NDE"
  195. 1030 X=0:Y=14:GOSUB 675:PRINT"[";:BY=EB:GOSUB 35000:PRINT HI$;"]  ";
  196. 1035 FORT=0 TO 7:BY=PEEK(49664+EB+T):GOSUB 35000:PRINT HI$" ";:NEXT T
  197. 1036 FORT=0 TO 7:PRINTCHR$(PEEK(PEEK(49664+EB+T)+49920));:NEXT
  198. 1040 GET K$:IF K$="" THEN 1040
  199. 1045 IF K$="Q" THEN GOSUB 575:GOTO 160
  200. 1050 OB=EB:IF K$="+" THEN EB=EB+8:IF EB=256 THEN EB=0
  201. 1060 IF K$="-" THEN EB=EB-8:IF EB<0 THEN EB=248
  202. 1065 IF K$=CHR$(13) THEN 1080
  203. 1070 IF OB<>EB THEN 1030
  204. 1071 GOTO 1040
  205. 1080 PB=1590:OP=1589
  206. 1081 X=0:Y=16:GOSUB 675:PRINT"  0-F / 0-[198] [197]INGABE , [210][197][212][213][210][206] = [198]ERTIG   ";
  207. 1090 POKE OP,PEEK(OP) AND 127
  208. 1100 POKE PB,PEEK(PB) OR 128
  209. 1120 GET K$:IF K$="" THEN 1120
  210. 1125 OP=PB
  211. 1130 IF K$="" THEN PB=PB+1
  212. 1140 IF K$="[157]" THEN PB=PB-1:GOTO 1179
  213. 1145 :
  214. 1150 IF K$>="0" AND K$<="9" THEN POKE PB,ASC(K$) OR 128:PB=PB+1
  215. 1160 IF K$>="A" AND K$<="F" THEN POKE PB,(ASC(K$)-64) OR 128:PB=PB+1
  216. 1170 IF K$>="[193]" AND K$<="[198]"THEN POKE PB,(ASC(K$)-128) OR 128:PB=PB+1
  217. 1179 IF ((PB-1589)/3)<>INT((PB-1589)/3)    THEN 1185
  218. 1180 IF K$="[157]" THEN PB=PB-1:GOTO 1185
  219. 1181 PB=PB+1
  220. 1185 IF K$=CHR$(13) THEN POKE OP,PEEK(OP) AND 127:GOTO 1220
  221. 1190 IF PB>1612 THEN PB=1590
  222. 1200 IF PB<1590 THEN PB=1612
  223. 1210 GOTO 1090
  224. 1220 AD=1589:FOR CN=0 TO 7
  225. 1230 GOSUB 30000:POKE (49664+EB+CN),BY
  226. 1240 NEXT CN:GOTO 1010
  227. 2000 REM --- MODUS ANZEIGEN ---
  228. 2010 X=29:Y=0:GOSUB 675:PRINT "           ";:GOSUB 675:PRINT MD$:RETURN
  229. 30000 REM --- UMRECHNEN HEX-DEZ BILDNIBBLES
  230. 30010 BY=0:GOSUB 30020:BY=BY+16*SB:GOSUB 30020:BY=BY+SB:AD=AD+1:RETURN
  231. 30020 AD=AD+1:B0=PEEK(AD)AND191:SB=0
  232. 30030 IF B0>47 AND B0<58 THEN SB=B0-48:RETURN
  233. 30031 IF B0>0 AND B0<8 THEN SB=B0+9:RETURN
  234. 30032 IF B0>65 AND B0<71 THEN SB=(B0-65)+9:RETURN
  235. 30033 RETURN
  236. 35000 REM --- UMRECHNEN DEZ-HEX
  237. 35010 HI$="":IN=INT((BY AND 240)/16):GOSUB 35030
  238. 35020 IN=(BY AND 15):GOSUB 35030:RETURN
  239. 35030 HI$=HI$+MID$(HE$,IN+2,1):RETURN
  240. 41000 REM --- UMRECHNEN HEX-DEZ 1 NIBBLE ---
  241. 41001 IN=0:I$=MID$(IN$,2,1):GOSUB41010:IN=SB:I$=MID$(IN$,1,1):GOSUB 41010
  242. 41002 IN=IN+16*SB:RETURN
  243. 41010 SB=0:FOR C=2 TO 17
  244. 41020 IF I$=MID$(HEX$,C,1) OR I$=MID$(H2$,C,1) THEN SB=C-2:C=17
  245. 41030 NEXT C:RETURN
  246.